package com.iyunwen.datatool.service;

import com.iyunwen.datatool.model.dbdo.EventDataDO;
import com.iyunwen.datatool.model.flow.PageResult;
import com.iyunwen.datatool.model.vo.EventGroupVO;
import org.springframework.stereotype.Component;

import java.io.File;
import java.util.List;

/**
 * @description:
 * @author: Zhu.Guodong
 * @create: 2020-03-16 20:33
 * @version:
 */
public interface IDataLoadService {

    /**
     * 获取html文件集合
     * @param path
     * @return
     */
    List<File> readHtmlFile(String path);

    /**
     *
     * @param file 单个html文件
     * @return
     */
    List<EventDataDO> readSignalDataFromHtml(File file);


    /**
     * 创建表
     * @param tableName
     * @return
     */
    boolean createTable(String tableName);

    /**
     * 数据入库
     * @param eventData
     * @return
     */
    boolean insertSignalDataToDatabase(List<EventDataDO> eventData,String tableName);


    /**
     * 读取索引信号数据
     * @param index
     * @return
     */
    EventDataDO readIndexSignalDataFromDb(Long index);

    /**
     * 分页获取事件数据
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageResult<EventDataDO> getEventData(int pageNum, int pageSize,String tableName);

    /**
     * 从数据库中读取索引信号数据的前后时间
     * @param eventDataDO 索引数据体
     * @param rangTime 前后范围时间
     * @return
     */
    List<EventDataDO>  readSignalDataFromDb(EventDataDO eventDataDO,int rangTime,String tableName);

    /**
     * 事件分组去重
     * @param eventGroupList
     */
    void distinctEventGroup(List<EventGroupVO> eventGroupList);

    /**
     * 获取不在分组中的高等级事件数据
     * @return
     */
    EventGroupVO getHighLevelSignalDataNotInGroup();



    /**
     * 分组数据写入到Excel
     * @param eventGroupData
     */
    void writeEventGroupDataToExcel(List<EventGroupVO> eventGroupData);
}
